﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using MySql.Data.MySqlClient;

namespace _0812159_0812164.dao
{
    public class DataHelper
    {
        // chuỗi kết nối
        private const string connectionString = "SERVER=localhost;DATABASE=googlemap;UID=root;PASSWORD=;charset=utf8;";

        // thuộc tính đối tượng kết nối cơ sở dữ liệu
        private MySqlConnection connection;

        // Phương thức cung cấp đối tượng kết nối đến cơ sở dữ liệu
        public MySqlConnection getConnection()
        {
            return connection;
        }

        // Mở kết nối đến cơ sở dữ liệu

        public void open()
        {
            this.connection = new MySqlConnection(connectionString);
            try
            {                
                this.connection.Open();
                string sql = "SET character_set_client = utf8";
                MySqlCommand cmd = new MySqlCommand(sql, connection);
                cmd.ExecuteNonQuery();
            }
            catch (MySqlException ex)
            {

            }

        }

        //Đóng kết nối cơ sở dữ liệu

        public void close()
        {
            try
            {
                this.connection.Close();
            }
            catch (MySqlException ex)
            {

            }
        }

        /**
         * Rút trích dữ liệu
         * @param sql câu truy vấn SELECT
         * @return MySqlDataReader
         */
        public MySqlDataReader executeQuery(String sql)
        {
            MySqlDataReader rs = null;
            try
            {
                MySqlCommand cmd = new MySqlCommand(sql, connection);
                rs = cmd.ExecuteReader(
                    CommandBehavior.CloseConnection |
                    CommandBehavior.SingleResult);
            }
            catch (MySqlException ex)
            {

            }
            return rs;
        }

        /**
         * Thêm, xóa, cập nhật dữ liệu
         * @param sql câu lệnh UPDATE, INSERT, DELETE
         * @return số lượng dòng cập nhật/thêm/xóa được , -1 : thất bại
         * @exception SQLException
         */
        public bool executeUpdate(String sql)
        {
            try
            {
                MySqlCommand cmd = new MySqlCommand(sql, connection);
                if (cmd.ExecuteNonQuery() > 0)
                    return true;
            }
            catch (MySqlException ex) { }
            return false;
        }

    }
}

